package sources

import (
	"context"

	"github.com/salvacybersec/keyhunter/pkg/types"
)

// Source is the interface all input adapters must implement.
// Chunks writes content segments to the out channel until the source is exhausted or ctx is cancelled.
// NOTE: Source is defined in the sources sub-package (not pkg/engine) and uses pkg/types.Chunk
// to avoid a circular import: engine -> sources -> engine.
type Source interface {
	Chunks(ctx context.Context, out chan<- types.Chunk) error
}
